package com.yuelan.apartment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelan.apartment.domain.RentBill;
import com.yuelan.apartment.domain.dto.RentBillDto;
import com.yuelan.apartment.domain.vo.RentBillVo;
import com.yuelan.common.core.web.page.TableDataInfo;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * @description: 租金管理
 * @Author: ZhaoYi
 * @date: 24-6-21 22:32
 */

public interface RentService extends IService<RentBill> {

    /**
     * 租金账单生成
     */
    void createRentBill(RentBillDto rentBill);

    /**
     * 账单收益统计（Month、Year）
     */
    HashMap<String, BigDecimal> rentProfit(String dateType);

    /**
     * 当月账单状态 (未收、已收、逾期的账单)
     */
    TableDataInfo billStatus(String type, int pageNum, int pageSize);


    List<BigDecimal> yearProfit(String year);

    /**
     * 处理账单逾期
     */
    void updateBillOverdue();

    /**
     * 处理账单逾期（基于两个CountDownLatch控制多线程事务提交）
     */
    void updateBillOverdueCountDownLatch();

}
